dialogbox 'C="Weiter"' '"Willkommen zum AddressAssist (AA) AREXX Tutorial!!!!\n\nDiese kurze Demonstration führt einerseits in die Fähigkeiten von AA ein\nund dient andererseits als Beispiel-Programm für AREXX Programmierer."'
dialogbox 'C="Ja bitte!|Nein"' '"Dialogfenster wie diese können jederzeit mit Hilfe des DIALOGBOX Befehls\nin ein Skript eingebaut werden.\n\nSoll mit dem Tutorial begonnen werden ???"'
if result = 1 then do
setview Listview
dialogbox 'ControlString="OK"' 'Zunächst wird nun die aktuelle Datenbank aus dem Speicher entfernt\nund eine neue Datenbank namens *DemoDatenbank* erstellt!'
newdatabase "DemoDatenbank"
dialogbox 'ControlString="Yawohl"' 'Nun können einige Datensätze hinzugefügt werden.'
newrecord 'Schneider'
setrecorddata name2 'Alex H.'
setrecorddata address1 'Kruggasse 179'
setrecorddata address2 'Quarz Development'
setrecorddata place 'CH-5462 Siglistorf'
setrecorddata phone1 '++41 56 243 18 33'
setrecorddata free1 'schneider@igt.baum.ethz.ch'
setrecorddata free2 '1'
setrecorddata free4 '16.08.'
setrecorddata remark1 'Der Author von AddressAssist!!!'
setrecordgroups G1 G9 G10
newrecord 'Schneider'
setrecorddata name2 'Ramona'
setrecorddata address1 'Kruggasse 179'
setrecorddata place 'CH-5462 Siglistorf'
setrecorddata phone1 '++41 56 243 18 33'
setrecorddata free2 '2'
setrecorddata free4 '22.04.89'
setrecorddata remark1 'Meine Tochter, sie ist 7 Jahre alt!!!'
setrecorddata remark1 'Der Autor von MUI, der *besten* GUI Bibliothek für den Amiga!'
setrecordgroups G1 G9 G10
newrecord 'Thomas'
setrecorddata name2 'Mark'
setrecorddata address1 '1515 Royal Crest Dr. #3259'
setrecorddata place 'Austin, TX 78741'
setrecorddata free1 'mthomas@zilker.net'
setrecorddata free2 '3'
setrecorddata remark1 'Autor von textfield.gadget.'
setrecordgroups G2 G9 G10
newrecord 'Potter'
setrecorddata name2 'Jonathan'
setrecorddata address1 'GPSoftware'
setrecorddata place 'Brisbane, Australia'
setrecorddata free1 ''
setrecorddata free2 '4'
setrecorddata remark1 'Das ist der Programmierer vom bekannten und beliebten DOpus5!!'
setrecordgroups G3 G9 G10
newrecord 'Schneider'
setrecorddata name2 'Yolanda'
setrecorddata address1 'Kruggasse 179'
setrecorddata place 'CH-5462 Siglistorf'
setrecorddata phone1 '++41 56 243 18 33'
setrecorddata free2 '2'
setrecorddata free4 '09.09.'
setrecorddata remark1 'Meine Frau!!'
current 0
setview F
dialogbox 'ControlString="Einverstanden"' 'Oh, wir müssen die ersten 2 *Frei* Felder umbenennen: *e-mail* and *ID-Nummer*!'
setfreename F1 'e-mail:'
setfreename F2 'ID-No.:'
setfreename F4 'Geburtstag:'
dialogbox 'ControlString="Wenn es so sein soll"' '... und die Gruppennamen anpassen!??'
setgroupname G1 'Europäer'
setgroupname G2 'Amerikaner'
setgroupname G3 'Australier'
setgroupname G8 'PC Entwickler'
setgroupname G9 'Amiga User'
setgroupname G10 'Amiga Entwickler'
dialogbox 'ControlString="Yala guuut"' 'OK, öffnen wird nun ein externes Bemerkungen-Fenster \n(Es gibt zwei davon).'
remark1window Open
dialogbox 'ControlString="Wow"' 'Nun wählen wir alle Amiga-Entwickler an und entfernen\ngleichzeitig alle Nicht-Europäer von der Auswahl.'
setview Listview
selectgroup G10
selectgroup X G2 G3
dialogbox 'ControlString="Wiesooo ???"' 'Die angewählten Datensätze werden nun als ASCII Datei exportiert.\nDazu wird die Voreinstellung *Prefs/Default.xpref* verwendet. ....'
dialogbox 'ControlString="OK"' '... schliesslich werden diese wieder importiert,wobei die importierten\nDatensätze als *angewählt* und *Gruppe 5* markiert werden.\n\nDie ursprüngliche Gruppen- und Auswahlzuordnung geht so verloren.'
dialogbox 'ControlString="Na dann !!"' 'Jetzt werden alle Datensätze abgewählt (von der Auswahl entfernt)\nund nur diejenigen, die zur *Gruppe 5* gehören angezeigt.'
selectnone
setlistview G5
dialogbox 'ControlString="Nein!!!??"' 'Die Datensätze der *Gruppe 5* werden angewählt,\nentfernt und es werden schliesslich wieder alle\nDatensätze angezeigt.'
selectgroup G5
removeselection
setlistview all
dialogbox 'ControlString="Ja!|Neeeein!"' 'Dies war Teil 1 von 3 der Demo.\n\nWollen Sie weiterfahren?'
if result = 1 then do
dialogbox 'C="Yuhuh"' 'Also, dann werden wir nun alle Personen, die in *Siglistorf* wohnen,\nanwählen und die Einträge in einer separaten Datenbank unter\ndem Namen *Die_Schneiders* abspeichern.'
selectstring '*Siglistorf*'
exportselection D '"RAM:Die_Schneiders"'
dialogbox 'C="Yuhuh"' 'Na dann importieren wir *Die_Schneiders* wieder.\n\nBeachte: Alle Informationen (inlusive der Gruppendefinition)\nbleiben beim Export/Import einer Auswahl erhalten.\n'
importselection '"RAM:Die_Schneiders"'
dialogbox 'C="OK"' 'Schliesslich wollen wir nun die Datenbank zweimal sortieren:\nZunächst nach *Vor-* und dann nach *Nachname*.'
selectnone
sort name2
sort name
dialogbox 'C="Wow!"' 'OK, die zahlreichen identischen Einträge sollen\nmit einem einzigen Funktionsaufruf entfernt werden.'
removeduplicaterecords
dialogbox 'ControlString="Ja, bitte!|Es tut mir leid!"' 'Teil 2 von 3 ist überstanden!\n\n Weiter ?'
if result = 1 then do
dialogbox 'C="OK"' 'Betrachten wir die Daten von *Alex Schneider* etwas näher.\nZunächst muss jedoch dieser Eintrag gesucht und als Aktueller gesetzt werden.'
find 'Alex'
dialogbox 'C="Interessant"' 'Es gibt zwei Wege, um die Daten eines Eintrages in ARexx auszulesen:\n . mit GETRECORDDATA können die Datenfelder einzeln ausgelesen werden.\n . FORMATRECORDSTRING ermöglicht ein C-ähnliches Formatieren der Daten!'
getrecorddata name
strName = result
getrecorddata name2
strName2 = result
getrecorddata address1
strAddr1 = result
getrecorddata place
strPlace = result
say 'Current record data (by repeated use of GETRECORDDATA):'
say 'Name....: 'strName
say 'Name2...: 'strName2
say 'Address.: 'strAddr1
say 'Place...: 'strPlace
formatrecordstring '%f2 %f1\nwohnt an der %f3 in %f5.\ne-mail ist %f8'
dialogbox 'C="Wow!!!"' 'Die Daten des aktuellen Eintrages sind (mit Hilfe von of FORMATRECORDSTRING):\n\n'result
end
end
dialogbox 'ControlString="Ja, bitte!|Sicher nicht!"' 'Ok, das ist nun das Ende!\n\nIn der Hoffung, dass diese Demo die gewünschte Funktion erfüllt hat,\nfolgt noch die letzte Frage: Möchten sie die aktuelle Datenbank sichern!??\n\nHerzlichen Dank.'
if result = 1 then
savedatabase /** database is saved with default name: 'testDatabase' from newdatabase */